package models

import (
	"gopkg.in/mgo.v2/bson"
)

type IContent interface {
	//upload
	//download
	GetDescription(id bson.ObjectId, obj interface{}) error
	GetDetail(id bson.ObjectId, limit int, obj interface{}) error
}

type ContentProfile struct {
	Id       bson.ObjectId `bson:"_id" json:"contentId" valid:"Required"`
	Name     string        `bson:"name" json:"name" valid:"Required"`
	CoverUrl string        `bson:"coverUrl" json:"coverUrl" valid:"Required"`
}

type Content struct {
	ContentProfile  `,inline`
	ContentProperty `,inline`
	CommentProfile  `bson:"commentProfile" json:"commentProfile"`
	EntityId        bson.ObjectId `bson:"entityId" json:"entityId"`
	SharedBy        User          `bson:"sharedBy" json:"sharedBy"`
	Created         int64         `bson:"created" json:"created"`
}

type ContentProperty struct {
	Name     string   `bson:"name" json:"name" valid:"Required"`
	Author   []string `bson:"author" json:"author"`
	Album    string   `bson:"album" json:"album"`
	Duration int64    `bson:"duration" json:"duration"`
	Size     int64    `bson:"size" json:"size"`
	Created  int64    `bson:"created" json:"created"`
	Format   string   `bson:"format" json:"format"`
}
